// 对象池实现
export class ObjectPool {
  constructor() {
    this.pools = {}
  }

  // 获取对象
  acquire(type) {
    if (!this.pools[type]) {
      this.pools[type] = []
    }

    if (this.pools[type].length > 0) {
      return this.pools[type].pop()
    }

    return this.createObject(type)
  }

  // 释放对象
  release(type, object) {
    if (!this.pools[type]) {
      this.pools[type] = []
    }
    
    // 重置对象状态
    if (object.reset) {
      object.reset()
    }
    
    this.pools[type].push(object)
  }

  // 创建新对象
  createObject(type) {
    // 根据类型创建相应的对象
    switch (type) {
      case 'segment':
        return { x: 0, y: 0 }
      case 'food':
        return { x: 0, y: 0 }
      default:
        return null
    }
  }

  // 清空对象池
  clear(type) {
    if (type) {
      this.pools[type] = []
    } else {
      this.pools = {}
    }
  }
}
